using System;
using System.Collections.Generic;

namespace MyMES.Dto
{
    /// <summary>
    /// 工作日历DTO - 用于工作日历查询返回
    /// </summary>
    public class WorkforceCalendarDto
    {
        /// <summary>
        /// 日期
        /// </summary>
        public DateTime Date { get; set; }

        /// <summary>
        /// 星期几 (1-7, 表示周一到周日)
        /// </summary>
        public int DayOfWeek { get; set; }

        /// <summary>
        /// 日 (当月的第几天)
        /// </summary>
        public int Day { get; set; }

        /// <summary>
        /// 农历日期
        /// </summary>
        public string LunarDate { get; set; }

        /// <summary>
        /// 是否是假期
        /// </summary>
        public bool IsHoliday { get; set; }
        
        /// <summary>
        /// 假期名称（如果是假期）
        /// </summary>
        public string HolidayName { get; set; }
        
        /// <summary>
        /// 假期类型：1-法定节假日，2-休息日
        /// </summary>
        public int HolidayType { get; set; }
        
        /// <summary>
        /// 是否调休工作日
        /// </summary>
        public bool IsWorkDay { get; set; }

        /// <summary>
        /// 班组安排列表
        /// </summary>
        public List<WorkforceGroupDto> Groups { get; set; } = new List<WorkforceGroupDto>();
    }

    /// <summary>
    /// 班组信息DTO
    /// </summary>
    public class WorkforceGroupDto
    {
        /// <summary>
        /// 班组ID
        /// </summary>
        public int GroupId { get; set; }

        /// <summary>
        /// 班组名称 (如: 风变20组, 组装C, 涂装2组等)
        /// </summary>
        public string GroupName { get; set; }

        /// <summary>
        /// 班组类型 (用于前端区分不同颜色: 1-绿色, 2-灰色)
        /// </summary>
        public int GroupType { get; set; }

        /// <summary>
        /// 排班状态: 0-休息, 1-正常上班
        /// </summary>
        public int Status { get; set; }

        /// <summary>
        /// 其他附加信息
        /// </summary>
        public string Remark { get; set; }
    }

    /// <summary>
    /// 工作日历返回结果
    /// </summary>
    public class WorkforceCalendarResultDto
    {
        /// <summary>
        /// 年份
        /// </summary>
        public int Year { get; set; }

        /// <summary>
        /// 月份
        /// </summary>
        public int Month { get; set; }

        /// <summary>
        /// 日历数据，按日期组织
        /// </summary>
        public List<WorkforceCalendarDto> CalendarData { get; set; } = new List<WorkforceCalendarDto>();
    }
} 